//package com.thekernel.youdaoyun.config;
//
//import com.thekernel.youdaoyun.shiro.ShiroRealm;
//import org.apache.shiro.mgt.SecurityManager;
//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
//import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.LinkedHashMap;
//
///**
// * @Author TheKernel
// * @Date 2019/9/16 2:14 下午
// * @Version 1.0
// * @Description
// */
//@Configuration
//public class ShiroConfig {
//
//    @Bean
//    public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
//        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//        // 设置 securityManager
//        shiroFilterFactoryBean.setSecurityManager(securityManager);
//        // 登录的 url
//        shiroFilterFactoryBean.setLoginUrl("/user/login");
//        // 登录成功后跳转的 url
//        shiroFilterFactoryBean.setSuccessUrl("/index");
//        // 未授权 url
//        shiroFilterFactoryBean.setUnauthorizedUrl("/403");
//
//        LinkedHashMap<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
//        // 定义 filterChain，静态资源不拦截
//        filterChainDefinitionMap.put("/css/**", "anon");
//        filterChainDefinitionMap.put("/js/**", "anon");
//        filterChainDefinitionMap.put("/fonts/**", "anon");
//        filterChainDefinitionMap.put("/img/**", "anon");
//        // druid 数据源监控页面不拦截
//        filterChainDefinitionMap.put("/druid/**", "anon");
//        // 配置退出过滤器, 具体退出代码无需编写
//        filterChainDefinitionMap.put("/logout", "logout");
//        filterChainDefinitionMap.put("/", "anon");
//        // 除以上 其他所有 url 均需通过认证
//        filterChainDefinitionMap.put("/**", "authc");
//
//        shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
//        return shiroFilterFactoryBean;
//
//    }
//
//    @Bean
//    public SecurityManager securityManager() {
//        // 配置 SecurityManager, 并注入 shiroRealm
//        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
//        securityManager.setRealm(shiroRealm());
//        return securityManager;
//    }
//
//    public ShiroRealm shiroRealm() {
//        // 配置 Realm 自己实现
//        ShiroRealm shiroRealm = new ShiroRealm();
//        return shiroRealm;
//    }
//
//}
